package com.scraper.articles.scanner;

import com.scraper.articles.domain.filter.BaseFilter;

import java.util.List;

/**
 * Base interface that is used for scanning sites.
 *
 * @param <T> result object type that will be populated by scanner.
 * @param <V> filter type.
 */
public interface Scanner<T, V extends BaseFilter> {

    /**
     * Method that is used to scan site.
     *
     * @param filter data filter.
     * @return list of scrapped items.
     */
    List<T> scan(V filter);

    /**
     * Base scanning site URL.
     *
     * @return site url.
     */
    String getSiteURL();
}
